//
//  HomeTableViewController.swift
//  微博三天
//
//  Created by jessica on 15/11/13.
//  Copyright © 2015年 jessica. All rights reserved.
//


//简单数据显示

//定义首页标识符
private let HomeCellId = "HomeCellId"

import UIKit

import AFNetworking

import SVProgressHUD

class HomeTableViewController: BaseTableViewController {

    //数据源 模型数组
//    懒加载
    private lazy var statuses = [Status]()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        visitorLoginView?.setUIInfo("关注一些人，回这里看看有什么惊喜", imageName: nil)
        
        //准备tableView
        prepareTableView()
        

        //获取网络数据
          loadData { (array) -> () in
        //没有数据
            if array == nil {
            
            SVProgressHUD.showErrorWithStatus(ApperrorTip)
                return
            }
            //否则拿到数据 赋值
            self.statuses = array!
            //刷新
            self.tableView.reloadData()
        

              }
//
           }
    //注册cell
    
    private func prepareTableView(){
        
//        tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: HomeCellId)
        
        tableView.registerClass(StatusCell.self, forCellReuseIdentifier: HomeCellId)
        tableView.rowHeight = 100
        
        
    }


    //MARK->加载微博首页数据
    //数组的数组形式
    private func loadData(finished : (array : [Status]?)->() ){
    
    //实例化AFN
        let AFN = AFHTTPSessionManager()
        
        let urlString = "https://api.weibo.com/2/statuses/home_timeline.json"
        
        guard let token = userAccountViewModel().token else{
        
        SVProgressHUD.showErrorWithStatus("你还没有登录呢?")
            return
        
        }
        let paraments = ["access_token" : token]
        AFN.GET(urlString, parameters: paraments, success: { (_, result) -> Void in

            guard let dict = result as? [String : AnyObject] else{
            
            //错误的回调
            finished(array: nil)
                return
            }                                       //双中括号:数组中的字典
            if let array = dict["statuses"] as?[[String : AnyObject]]{
            
                //遍历数组
                var list = [Status]()
                for item in array {
                //字典转模型
                    let s = Status(dict: item)
                    list.append(s)
                }
            
            //完成回调
                finished(array: list)
            }
        
            
            finished(array: nil)
            }) { (_, error) -> Void in
                finished(array: nil)
                print(error)
                
        }
    
    }
 }

//扩展,包含数据源和协议方法
extension HomeTableViewController{

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        
        return statuses.count
    }
    
    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        
        let cell = tableView.dequeueReusableCellWithIdentifier(HomeCellId, forIndexPath: indexPath)as!StatusCell
        
//     cell.textLabel?.text = statuses[indexPath.row].text
        
        return cell
        
        
    }



}

